package com.example.demo.mapper;

import com.example.demo.entity.Article;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * ArticleMapper interface
 *
 * @author yjq
 * @date 2018/7/30
 */
public interface ArticleMapper {

    /**
     * 保存 * @param article 文章信息
     *
     * @param article 文章信息
     * @return int
     */
    int save(Article article);

    /**
     * 保存文章信息
     *
     * @param article 文章信息
     * @return int 更新数量
     */
    int updateByPrimaryKey(Article article);

    /**
     * 根据id删除文章
     *
     * @param id 文章id
     * @return void
     */
    void deleteArticle(Integer id);

    /**
     * 根据id查询用户
     *
     * @param id 用户信息
     * @return User
     */
    Article selectByPrimaryKey(Integer id);

    /**
     * 查询所有文章
     *
     * @param
     * @return List<Article>
     */
    List<Article> selectAll();

    /**
     * 根据文章名查询文章信息
     *
     * @param articleTitle 用户名
     * @return List<Article>
     */
    List<Article> selectByArticleTitle(@Param("articleTitle") String articleTitle);

    /**
     * 按照类型查文章
     *
     * @param articleType 文章类型
     * @return List<Article>
     */
    List<Article> selectByType(String articleType);

    /**
     * 查询阅读次数最多的7篇文章
     *
     * @param
     * @return List<Article>
     */
    List<Article> selectTop7();

    /**
     * 查询最新的6篇倾听世界类型文章
     *
     * @param
     * @return List<Article>
     */
    List<Article> articleListenWorld6();

    /**
     * 按照id查询文章
     *
     * @param id 文章id
     * @return Article
     */
    Article selectById(Integer id);

    /**
     * 按照id使阅读次数+1
     *
     * @param id 文章id
     * @return Article
     */
    void updateReadTime(Integer id);

    /**
     * 根据文章名称查询
     *
     * @param name
     * @return
     */
    List<Article> selectByName(String name);
}